{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-04-02T03:12:01.614740Z",
     "start_time": "2021-04-02T03:12:01.151512Z"
    }
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## bar plot with error bars"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-04-02T03:28:14.812828Z",
     "start_time": "2021-04-02T03:28:14.797288Z"
    }
   },
   "outputs": [],
   "source": [
    "df = pd.DataFrame({\n",
    "    \"reading\": [\n",
    "        5.0, 4.0, 5.0, 4.0, 5.0, 3.0, 7.0, 5.0, 2.0, 8.0\n",
    "    ],\n",
    "    \"date\": [\n",
    "        \"2020-01-20\",\n",
    "        \"2020-01-20\",\n",
    "        \"2020-01-20\",\n",
    "        \"2020-01-20\",\n",
    "        \"2020-01-20\",\n",
    "        \"2020-01-21\",\n",
    "        \"2020-01-21\",\n",
    "        \"2020-01-21\",\n",
    "        \"2020-01-21\",\n",
    "        \"2020-01-21\"\n",
    "    ]\n",
    "})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-04-02T03:28:15.183423Z",
     "start_time": "2021-04-02T03:28:15.174579Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>reading</th>\n",
       "      <th>date</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5.0</td>\n",
       "      <td>2020-01-20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4.0</td>\n",
       "      <td>2020-01-20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5.0</td>\n",
       "      <td>2020-01-20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4.0</td>\n",
       "      <td>2020-01-20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5.0</td>\n",
       "      <td>2020-01-20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>3.0</td>\n",
       "      <td>2020-01-21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>7.0</td>\n",
       "      <td>2020-01-21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>5.0</td>\n",
       "      <td>2020-01-21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>2.0</td>\n",
       "      <td>2020-01-21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>8.0</td>\n",
       "      <td>2020-01-21</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   reading        date\n",
       "0      5.0  2020-01-20\n",
       "1      4.0  2020-01-20\n",
       "2      5.0  2020-01-20\n",
       "3      4.0  2020-01-20\n",
       "4      5.0  2020-01-20\n",
       "5      3.0  2020-01-21\n",
       "6      7.0  2020-01-21\n",
       "7      5.0  2020-01-21\n",
       "8      2.0  2020-01-21\n",
       "9      8.0  2020-01-21"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-04-02T03:50:54.797256Z",
     "start_time": "2021-04-02T03:50:54.650138Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWoAAAElCAYAAADN1qhaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3de5BcaXnf8e9zenp6NLprZmSt0CpatELM7oKBmmAwOAgI1BpsDIQksCFxwM7aZYMdTCplu9YUcfCtQpmQGwkxFwd7IYZAQhGCoWzWXAowI1izd1i2Fu+VmZ7pnu7pe/d58kd3a7W7kno00pnznp7fp0rV0vTMqedMv/3o6XPe93nN3RERkXBFaQcgIiIXpkQtIhI4JWoRkcApUYuIBE6JWkQkcBNJHHR2dtaPHTuWxKFFRMbS6dOni+4+d67nEknUx44dY3FxMYlDbyuVSoU9e/akHYbIBWmcXh5m9oPzPadLHwErFApphyAyksZp8pSoA9btdtMOQWQkjdPkKVEHzMzSDkFkJI3T5ClRByyK9PJI+DROk6ffcMA6nU7aIYiMpHGaPCXqgE1NTaUdgshIGqfJU6IOWK1WSzsEkZE0TpOnRB0wzU2VLNA4TZ4SdcBKpVLaIYiMpHGavERWJsrlMTMzk3YIIhd06tQpAG655ZZU4xh3qqgDtry8nHYIIiNp1kfylKgDNjd3zv4sIkHJ5/NphzD2lKgDpopaskAVdfKUqAOmilqyQBV18pSoA7a6upp2CCIjqSlT8pSoA7Z37960QxAZKZfLpR3C2FOiDtj6+nraIYiM1Ov10g5h7ClRB2zHjh1phyAykirq5ClRB6zdbqcdgshIcRynHcLYU6IOmCoVyQJtHJA8JWoRkcCNTNRmdtLMbj3rT8XM/uVWBLfd6SaNZIG7px3C2BvZlMnd7wGeBWBmOeAh4FMJxyXA5ORk2iGIjKStuJJ3sb/hlwLfd/cfJBGMPF6j0Ug7BJGR9MkveRebqF8PfPRcT5jZjWa2aGaLS0tLNJtN6vU6tVqNVqtFpVKh2+1SKpVwd4rFIvBYP4tisYi7UyqV6Ha7VCoVWq0WtVqNer1Os9mkWq3S6XQol8vEcczKysrjjjF8XF1dpdfrsba2RrvdZn19nUajQaPRYH19nXa7zdraGr1e78zqvyceY2VlhTiOKZfLdDodqtXqlp/Trl27xu6cxvF12s7n1Ov1iKJorM4prdfpQmyj15fMbBJ4GLjW3X94oe9dWFjwxcXFDR1Xzm91dZUDBw6kHYbIeZ06dYput8tXvvKVtEPJPDM77e4L53ruYirqnwS+NSpJy+WjJC1ZMDGh/UeSdjGJ+g2c57KHJENtTiUL1OY0eRtK1Ga2E3gZ8Mlkw5Gzqc2pZIHanCZvQ4na3WvuPuPua0kHJI9RRS1ZoIo6eZoAGTBV1JIFqqiTp0QdsOHUIpGQqaJOnhJ1wPbv3592CCIjqaJOnhJ1wCqVStohiIykrbiSp0QdsJ07d6YdgshIasebPCXqgDWbzbRDEBlJGwckT4k6YLr2J1mgjQOSp0QdMFUqIgJK1EFTQ3bJAo3T5ClRB0zNbiQLdOkjeUrUAWu1WmmHIDKSKurkKVEHbHp6Ou0QREbSVlzJ0284YNVqNe0QREbSVlzJU6IO2L59+9IOQWQk3UtJnhJ1wNSUSbJATZmSp0QdsNnZ2bRDEBlJC7OSp0QdMG0cIFmgijp5StQB08YBkgWqqJO30T0T95nZJ8zsbjO7y8yen3RgAsViMe0QREZSRZ28jd6ufS/wOXd/nZlNAprguwVmZmbSDkFkJFXUyRtZUZvZXuDvAR8AcPe2u5eTDkygXNavWcKnjQOSt5FLH1cBy8CHzOzbZvZHZvakjvZmdqOZLZrZ4tLSEs1mk3q9Tq1Wo9VqUalU6Ha7lEol3P3Mx/rhDbNisYi7UyqV6Ha7VCoVWq0WtVqNer1Os9mkWq3S6XQol8vEcXxm+trwGMPH1dVVer0ea2trtNtt1tfXaTQaNBoN1tfXabfbrK2t0ev1WF1dPecxVlZWiOOYcrlMp9OhWq1u+Tnt3r177M5pHF+n7XxOvV6PKIrG6pzSep0uxEat0zezBeDrwAvc/Rtm9l6g4u6/db6fWVhY8MXFxQseV0arVCrs2bMn7TBEzuvUqVP0ej2+/OUvpx1K5pnZaXdfONdzG6moHwQedPdvDP79CeA5lys4Ob9CoZB2CCIjqXte8kYmand/FHjAzE4OvvRS4M5EoxJA1/4kG9Q9L3kbnfXxVuBPBzM+7gPelFxIMqRKRbJA4zR5G0rU7n4rcM5rJ5IctY8UEdDKxKBpIYFkgS59JE+JOmBTU1NphyAykj75JU+/4YDVarW0QxAZSRsHJE+JOmCaQy1ZoI0DkqdEHbBRq5VEQqB7KclTog6YmjJJFqgpU/KUqAOmjQMkC1RRJ0+JOmDaOECyQBV18pSoA6aKWrJAFXXylKgDpopaskAVdfKUqAM27IMrEjI1D0ueEnXA9u7dm3YIIiPlcrm0Qxh7StQBW19fTzsEkZG0MjF5StQB27FjR9ohiIykijp5StQBa7fbaYcgMlIcx2mHMPaUqAOmSkWyQBsHJE+JWkQkcGp7FSjt7ixZoY0DkrehRG1m9wNVoAd0z7eluVxeasguWaBxmryLqahf7O7FxCKRJ9G0J8kCjdPk6b/CgOlmomSBxmnyNpqoHfi8mZ02sxuTDEgeo0pFskDjNHkbvfTxQnd/yMwOAl8ws7vd/Utnf8Mggd8IcOWVV9JsNonjGHdnYmKCVqvF9PQ01WqVffv2sbKywuzsLMvLy8zNzVEsFpmZmaFcLrN7927q9TqFQoFut4uZEUURnU6HqakparUae/bsoVQqMTMzc+YYw8fV1VX27t3L+vo6O3bsoN1un/lfv9frMTk5SaPRYNeuXaytrXHgwIEnHWNlZYX9+/dTqVTYuXMnzWaTfD6/ZefU6XTI5/NjdU5j8zp9dpZS9DRm4rtYjp7BXHzbmcfV6CR74/tYj57CjrhI2/aQo9U/JwpMeoVGNMuu+CHWoqdyIL7nScdYiebZH3+XSnSMnfEjNO0AeWrETODkmPAGLdvLtC9Rja5kX3wvK9G1zMa3sxxdx1x8O8XoOmbiOyhHV7M7foC6HaTga3RtB0aPiC4ddjLlq9SiK9gT37+5c1qqkqPL2seuGp9zupTX6TXf2/TYuxC72Du2ZvZOYN3d332+71lYWPDFxcWLOq483qlTp+h0Onz1q19NOxR5ops1b3jo1Lugw06+epM2Ygbghs3PgDGz0+ebqDHy0oeZ7TSz3cO/Ay8Hbt90NLJhah8pWZBHSTppG7n08SPApwarjyaAm939c4lGJYAasks2dNgJStaJGpmo3f0+4Ee3IBZ5AlXUkgWqqJOn6XkBU0UtWdBhOu0Qxp4SdcBUUUsW5KmnHcLYU6IOmLY4kizoMpV2CGNPiTpgWvElWZBDfdOTpkQdMDVklyyI1YQzccH9hqffc1faIQSh9WCdCXP9Ps5Sf9t82iHIORgqKJKmijpgWv8m2aCRmjQl6qCpIbuET6M0eUrUAYtdlYqET5c+kqdEHbAJU60i4fPwbnWNHSXqgLVVUUsGRJqelzgl6oAVIlXUEr6eFrwkTok6YM1YL4+Eb4JG2iGMPWWCgE1H2uJIwqemTMlTog5YPdYScgmfmjIlT4k6YKqoJQtUUSdPiTpgqqglC1RRJ0+JOmCqqCULVFEnT4k6YKqoJQtUUSdvw4nazHJm9m0z+0ySAcljpiItzZXwddmRdghj72Iq6l8F1HNzC7VirUyU8OVoph3C2NvQIn0zOwK8Evgd4NcSjUgAKPzyH3Mk3+JB7W8rgYuZBFpphzHWNlpR/3vgX8P522SZ2Y1mtmhmi0tLSzSbTer1OrVajVarRaVSodvtUiqVcHeKxSIAy8vLABSLRdyd44UGBYs5km+xJ+pycKLN7ESHfbkuh/MtdliPqyab5HBOFvoroq6dqj/u8UShQd5ijk622Bn1OJRvcyDX4UCuw6F8m51Rj6OTLfIWc+I8xzhZaJDDuWqyyQ7rcTjfYl+uy+xEh4MTbfZEXY7kWxQs5nihgeHMD372msHj/FQdY/PnVOnlxu6cLvV1Go6X4ePKygpxHFMul+l0OlSr1U2PvVKpRLfbpVKp0Gq1qNVq1Ot1ms0m1WqVTqdDuVwmJsdK1N/EYDl6xuMeV6OT9MizFh2jzS7W7TANm6FhM6zbYdrsYi06Ro88q9HJcx5jJZonJkc5Ok6Haap2hKbtp25z1OwQLfZSsaN0maIUncAxitF1g2P0H4vRdThGKTpBlykqdpQWe6nZIeo2R9P2U7UjdJimHB3f9Dn1mAR8rM7pkl6nSxh7F2LuF+4nYWY/BbzC3X/JzE4B/8rdf+pCP7OwsOCLi4sXPO75aEeTxxycaLPUnUw7jGAEs8PLzbokNXTqXdAjz5dv0kc/AG7YfH8eMzvt7gvnem4jFfULgFeZ2f3Ax4CXmNmfbDoa2bBYO2dIBmiUJm9konb333D3I+5+DHg98Jfu/sbEIxO6anMqmaAuj0nTPOqAacGLZIErjSTuorZmcPdbgFsSiUSepNTVzhkSvohu2iGMPf1XGLBDed2gkfD1Z35IkpSoA/a37ULaIYiMNKEFL4lTog7Y1QW9ASR8asqUPCXqgN3TUg8FCZ+aMiVPiTpgwxV8IiHrsDPtEMaeEnXA7mjqI6WEL08t7RDGnhJ1wFRRSxaook6eEnXAVFFLFqiiTp4SdcCGHeNEQqaNA5KnRB2w+zWPWjJAGwckT4k6YFdoZaJkgFYmJk+JOmAr6vUhGZBDBUXSlKgDtjun7nkSvvjiervJJihRB6ytzW0lA+z8O/TJZaJELSISOCXqgE1G2jlDwqeNA5Kn33DAqr1c2iGIjKSNA5KnRB2wmQm9ASR8PfJphzD2RiZqM5sys782s78xszvM7N9sRWACj3T0BpDw5WinHcLY20hF3QJe4u4/CjwLuN7MnpdsWAJwbLKVdggiI/WYSjuEsTdyAqS7O7A++Gd+8Ed3ubbA97RxgGTABOpJk7QNXaM2s5yZ3QosAV9w92+c43tuNLNFM1tcWlqi2WxSr9ep1Wq0Wi0qlQrdbpdSqYS7UywWAVheXgagWCzi7hwvNChYzJF8iz1Rl4MTbWYnOuzLdTmcb7HDelw12SSHc3LQtGjYDnT4eKLQIG8xRydb7Ix6HMq3OZDrcCDX4VC+zc6ox9HJFnmLzzQ+euIxThYa5HCummyyw3oczrfYl+syO9Hh4ESbPVGXI/kWBYs5XmhgOPODn71m8Dg/VcfY/DkN/4zTOV3q6zQcL8PHlZUV4jimXC7T6XSoVqubHnulUolut0ulUqHValGr1ajX6zSbTarVKp1Oh3K5TEyOlWi+f4zoGY97XI1O0iPPWnSMNrtYt8M0bIaGzbBuh2mzi7XoGD3yrEYnz3mMlWiemBzl6DgdpqnaEZq2n7rNUbNDtNhLxY7SZYpSdALHKEbXDY7RfyxG1+EYpegEXaao2FFa7KVmh6jbHE3bT9WO0GGacnR80+fUY5I2u8fqnC7pdbqEsXch1i+YN8bM9gGfAt7q7ref7/sWFhZ8cXFxw8c92/R77trUz8n4q79tPu0Q+m7WQqShU+/qP95yU7pxBOOGzV9sMLPT7r5wrucuataHu5eBLwLXbzoa2TBtHCBZoI0DkreRWR9zg0oaM9sBvAy4O+nARBsHSDZo44DkbaSivgL4opl9B/gm/WvUn0k2LAHOXNsVCVkHFRRJ28isj+8Az96CWOQJ7m1p2pOEL48u0SVNKxMDdlTzqCUDuppHnTgl6oA9qpWJkgFamZg8JeqA7VevD8kAbRyQPCXqgNVjdc+T8GnjgOQpUQdswrRSX7JAC4CSpkQdsEgtVSQDNEqTp0QdsGasl0fCp0sfyVMmCNge7UIuGeC6mZg4JeqALXc1PU/CF2l6XuL0X2HAjky2+L56UkvAbrkJStHVEH8v7VDGmirqgN2nJeSSAfvie9MOYewpUQfs6VNqyiThW4muTTuEsadEHbC71OZUMmA2Pu8eInKZKFEH7BptHCAZMNwqS5KjRB2wO1VRSwbMqaJOnBJ1wOZVUUsGFFVRJ06JOmB3NzU1T8I3E9+RdghjT4k6YE8tNNMOQWSkcnR12iGMPSXqgD3YLqQdgshIu+MH0g5h7G1kF/IrzeyLZnanmd1hZr+6FYEJzE100g5BZKS6HUw7hLG3kSXkXeDt7v4tM9sNnDazL7j7nQnHtu1Veto4QMJX8LW0Qxh7Iytqd3/E3b81+HsVuAt4StKBCUxFah8p4euabnon7aKuUZvZMeDZwDfO8dyNZrZoZotLS0s0m03q9Tq1Wo1Wq0WlUqHb7VIqlXB3isUiAMvLywAUi0XcneOFBgWLOZJvsSfqcnCizexEh325LofzLXZYj6smm+RwThb6S6yvHUxjGz6eKDTIW8zRyRY7ox6H8m0O5DocyHU4lG+zM+pxdLJF3mJOnOcYJwsNcjhXTTbZYT0O51vsy3WZnehwcKLNnqjLkXyLgsUcLzQw/Mx0uuFClfmpOsbmzynGxu6cLvV1Go6X4ePKygpxHFMul+l0OlSr1U2PvVKpRLfbpVKp0Gq1qNVq1Ot1ms0m1WqVTqdDuVwmJsdKNN8/RvSMxz2uRifpkWctOkabXazbYRo2Q8NmWLfDtNnFWnSMHnlWo5PnPMZKNE9MjnJ0nA7TVO0ITdtP3eao2SFa7KViR+kyRSk6gWNnpsgNF58Uo+twjFJ0gi5TVOwoLfZSs0PUbY6m7adqR+gwTTk6fknn1KUwdue06dfpEsbehZj7xvZnMLNdwF8Bv+Pun7zQ9y4sLPji4uKGjvtE0++5a1M/N4725bqUe2pwOFR/23zaIfTdrK2nzta0/Uz5hRPNtnHD5ve7MbPT7r5wruc2VFGbWR74X8CfjkrScvlMR9o4QMLXYWfaIYy9jcz6MOADwF3u/ofJhyRDpa6qaQnflK+mHcLY20hF/QLgnwIvMbNbB39ekXBcAhzKa3qehK8WXZF2CGNvZMnm7l9B+8Gn4m+14EUyYE98f9ohjD2tTAzY1VpCLhlQip6WdghjT4k6YPdov0TJgJlYM7WSpkQdsGvV5lQyYDivWJKjRB2wO7RxgGTAXHxb2iGMPSXqgKmilixQRZ08JeqAqaKWLFBFnTwl6oAN+1uIhGzYC0OSo0QdsPs1j1oyYG98X9ohjD0l6oBdoZWJkgHrkboeJ02JOmAr6vUhGbAjLqYdwthTog7Y7py650n42rYn7RDGnhJ1wNqxWqxI+HK00g5h7ClRi4gETok6YJPR5neLENkqPTQ7KWlK1AGrahdyyYBJr6QdwthTog7YzEQ37RBERmpEs2mHMPaUqAP2SCefdggiI+2KH0o7hLGnRB2wY5O6my7hW4uemnYIY28jm9t+0MyWzOz2rQhIHvM9bRwgGXAgviftEMbeRirqDwPXJxyHnIPanEoWqM1p8kYmanf/EqD94FOgNqeSBWpzmrzLdo3azG40s0UzW1xaWqLZbFKv16nVarRaLSqVCt1ul1KphLtTLPb7AywvLwNQLBZxd44XGhQs5ki+xZ6oy8GJNrMTHfbluhzOt9hhPa6abJLDOTloAzqsPIePJwoN8hZzdLLFzqjHoXybA7kOB3IdDuXb7Ix6HJ1skbf4TCvRJx7jZKFBDueqySY7rMfhfIt9uS6zEx0OTrTZE3U5km9RsJjjhQaGMz/42WsGj/NTdYzNn9Pwzzid06W+TsPxMnxcWVkhjmPK5TKdTodqtbrpsVcqleh2u1QqFVqtFrVajXq9TrPZpFqt0ul0KJfLxORYieb7xxhUk8PH1egkPfKsRcdos4t1O0zDZmjYDOt2mDa7WIuO0SN/pj3oE4+xEs0Tk6McHafDNFU7QtP2U7c5anaIFnup2FG6TFGKTuAYxei6wTH6j8XoOhyjFJ2gyxQVO0qLvdTsEHWbo2n7qdoROkxTjo5f0jk9HD137M5p06/TJYy9CzH30YsqzOwY8Bl3v27kNwMLCwu+uLi4kW99kun3aKNMObf62+bTDqHvZi3tl/O4YfOL1MzstLsvnOs5zfoI2EltHCAZMKxaJTlK1AG7tzWVdggiI+2Pv5t2CGNvI9PzPgp8DThpZg+a2c8lH5YAHNU8asmASnQs7RDG3sjO9O7+hq0IRJ7sUa1MlAzYGT+SdghjT5c+ArZfvT4kA5p2IO0Qxp4SdcDqsbrnSfjy1NIOYewpUQdswtSPWsIXj76CKpdIiTpgEUrUEj5Hn/ySpkQdsGasl0fCN+Ga7580ZYKA7dEu5JIBLdubdghjT4k6YMtdTc+T8E37UtohjD0l6oAd0YIXyYBqdGXaIYw9JeqA3acl5JIB++J70w5h7ClRB+zpU7pJI+Fbia5NO4Sxp0QdsLu0cYBkwGysXfqSpkQdsGu0FZdkwLCxvyRHiTpgd6qilgyYU0WdOCXqgM2ropYMKKqiTpwSdcDubu5IOwSRkWbiO9IOYewpUQfsqYVm2iGIjFSOrk47hLGnRB2wB9uFtEMQGWl3/EDaIYw9JeqAzU100g5BZKS6HUw7hLGnRB2wSk/tIyV8BV9LO4Sxt6FEbWbXm9k9Znavmf160kFJ31QUpx2CyEhd003vpG1kF/Ic8J+BnwSuAd5gZtckHZhAjKUdgshIhtrxJm0jFfVzgXvd/T53bwMfA34m2bAEoOtK1BK+CG3CnLSNbHb2FODs27oPAj/2xG8ysxuBGwf/XDezey49vO2tAbNAMe04QmG/lnYEcm4ljdOhf3JJxdXfOd8Tl21XSnd/P/D+y3U8ATNbdPeFtOMQuRCN0+Rt5NLHQ8DZncGPDL4mIiJbYCOJ+pvACTO7yswmgdcDn042LBERGRp56cPdu2b2FuDPgRzwQXfX4v6toUtJkgUapwkzd087BhERuQCtTBQRCZwStYhI4JSoRUQCp0Q9RsxMSxlFxpASdYaZ2YSZTZvZ0wBcd4ZFxpJmfWSYmf13+lMsnwksA7/p7t8aPBe5u9rvSarM7Hr6bSfucXc1WN8kVdQZZWbPo98w61eA5wFfB/7EzP4TgJK0pM3M/j7wWeDNwM+Y2Xl7WciFKVFn10HgPqDn7h13fyfwYuBKM/vfZrY71ehE4EXA7wG3A68Bft7MXmZmcwBm9sLBo+6tjKBLHxk1WM7/buBW4MNnV9CDSyL/xd2/nVZ8sr2ZWQRcDZTcfdnMTgD/DDgGfHHw+A/dfT61IDNEiTrDzOy59JP1w8AfAI/Qv1Z9B/AL7v5XKYYn8iRm9uP0+wW9GXitu38+5ZAyQYk6Y8zsFPA0oAR8DqgD76R/2eNu+p0OH3L3N6cUomxzgzF6kv4Y/Za732tmE+7eHTz/28AL3f0lKYaZKUrUGTKYhvcxYJH+/YWH3f0dg+cO0m88/ij9j5vrqQUq29YTxqgBD7j7b5/1fA54BfBtd38wnSizR4k6Q8zs48Bfuvv7zGwe+Ahwk7t/bvB8wd1bZmaaUy1pOM8Y/Q13/8Lg+cnBln5yETTrIyPM7EcAB/4CwN3vAv4M+OnB888Bfm7wnJK0bLkLjNFXD55/NvDzqQWYYUrUGeHuPwT+Bf0bhkMfBY4O/v4uoLLVcYkMbWCM/g4ao5uiSx8Z8cTLGYPpeV3gfcAh+oX0q9OKT0RjNDmXbXNbSdbwDXDW0nB399jMbqNfxTxpZ3iRraQxmhxd+siYsxa2vN3MDgAfBN7k7t9MMSyRMzRGLz9d+gjcYHlt5O694UdLM3sr8CJ3f13a8YlojCZPFXXAzOzp3tcbzD8d9kR4BvD7g+/JpRagbHsao1tDFXWgzOyNwP+gv/v7L7r7D1IOSeRxNEa3jirqcL0WeCNwGrjNzP7D2V3GBvOmRdKkMbpFVFEHyMwmgFcCi+7+kJkdBd4PPAf4RWAa+HF3/6UUw5RtTGN0aylRZ4iZ/QT9O+jHgR/TXXQJjcZoMjSPOjCD1qXPo9/UpgN856z+HV82s08CV+gNIGnRGN16StQBGbSH/I/AV4Hn0+8z/RNm9nl3v30wJ3UCeGt6Ucp2pjGaDl36CIiZvQ/4hrt/eLBd0YuABaAJ/K67t4cd8lINVLYtjdF0aNZHWG4DXm9mR9x92d0/AXwIuA74b3oDSAA0RlOgijowZvZuoEV/X7kvDXv3mtn/Bf65uy+nGZ+IxujWU6IOxLCRjZk9k/60pzlgHfg+cBh4lbs/P80YZXvTGE2PEnWAzGwn8HJgBngd/bvrf+Tu96cZl8iQxujWUqIOwFmNbPLu3hl87R8DnxrcnMm5ey/lMGUb0xhNl24mpsjMJgcrvAA46w3wB8BPD6/96Q0gadEYDYPmUafr39Kf2nSrmVWAz7v714AccBM8rgm7SBo0RgOgSx8pMbO3Aa8CfoH+G+FK4GrgTuDj7v6gPk5KmjRGw6GKOj0TwEfc/bvAd83sKcDfBV4MPA14UG8ASZnGaCCUqNNzK/CBwT2aDw06kD0K7AF+3cxud/ellGOU7U1jNBC69JEiM7se+EdAEfi0u39l8PXb6G9jtJpmfCIao2FQot5iZnYd/c5j33H3vzazBfofJZ8PHAJ+CDzg7r+SYpiyjWmMhkeJeguZ2SuBdwBfB/4B8O/c/b1mNkt/r7lTwHfd/W/Si1K2M43RMClRbyEz+ybwDnf/f2b2LODtwM9qapOEQmM0TFrwskUGzdZvH7wBIuAe+stvXzt4/lWDj5giqdAYDZcS9da5F/ivgx4J5u4N4H8Crx68KX4PKKQZoGx7GqOB0qWPLTAY5LuBmrt3z/raLvq7ZZSAvLv/cnpRynamMRo2zaNO2KAl5O8DDwHPNLOPu/u7B+0iq/TbQ74CmE8zTtm+NEbDp4o6YWb258Bn6X+EPA68h37l8hZ3/wszew2w390/mGKYso1pjIZPFXWCzGw//b3kvubujwKPAs81s58FfsvMau7+qVSDlG1NYzQbdDMxQe5eAv4P8CYzmzrr638M/Bn9xuuYmaUToWx3GqPZoESdEDN7qpm9iH6/hDngB2b2lrO+JQc8C8B1/UlSoM0gdqQAAAEHSURBVDGaHbpGnQAzu4J+NeLAw8D7gDL93Zor9Hdyfilwg7vfmlacsn1pjGaLEnUCzOxDwPfc/XfN7FXAHwIL7l4eVDANYMXdv59qoLJtaYxmiy59XGaDnr3HgI8AuPungc8BwwY2twP79AaQtGiMZo8S9WXm7g8Bb6W/QGDoQ8DJwd8/SP9NIpIKjdHs0aWPBAx3bB78PQ/sAN5Pf4nuc9395WnGJ6Ixmi2aR52As++QD3Zt7pjZw8BvAi9JLTCRAY3RbFGi3jrvBxrufkvagYich8ZooHTpYwuZWaS+vhIyjdEwKVGLiAROsz5ERAKnRC0iEjglahGRwClRi4gETolaRCRw/x+f1ihpClKe7AAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.clf()\n",
    "\n",
    "df_grouped = df.groupby('date')['reading'].agg(['mean','std']).reset_index()\n",
    "\n",
    "xs = range(len(df_grouped['mean'].values))\n",
    "ys = df_grouped['mean'].values\n",
    "\n",
    "labels = df_grouped['date'].values\n",
    "\n",
    "plt.bar(xs, ys, color=['#098ed6', 'orange'])\n",
    "\n",
    "plt.vlines(xs, \n",
    "           df_grouped['mean'] - df_grouped['std'], \n",
    "           df_grouped['mean'] + df_grouped['std'])\n",
    "\n",
    "plt.gca().grid(True, linewidth=0.8, linestyle=':', alpha=0.4)\n",
    "\n",
    "plt.xticks(xs, labels, rotation=60)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-04-02T03:22:47.863598Z",
     "start_time": "2021-04-02T03:22:47.849682Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['2020-01-20T00:00:00.000000000', '2020-01-21T00:00:00.000000000'],\n",
       "      dtype='datetime64[ns]')"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_grouped['date'].values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.9"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
